package com.example.mq.mqserver.mapper;

import com.example.mq.mqserver.core.Binding;
import com.example.mq.mqserver.core.Exchange;
import com.example.mq.mqserver.core.MSGQueue;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface MetaMapper {
    // 核心建表方法
    void createExchangeTable(); // 创建 交换机 表
    void createQueueTable();    // 创建 消息对列 表
    void createBindingTable();  // 创建 绑定 表

    // exchangeTable 的查找、插入和删除
    void insertExchange(Exchange exchange);
    void deleteExchange(String exchangeName);
    List<Exchange> selectAllexchanges();

    // QueueTable 的查找、插入和删除
    void insertQueue(MSGQueue queue);
    void deleteQueue(String queueName);
    List<MSGQueue> selectAllQueues();

    // BindingTable 的查找、插入和删除
    void insertBinding(Binding binding);
    void deleteBinding(Binding binding);
    List<Binding> selectAllBindings();

}
